1. Technical Field
The present invention relates in general to programmable logic circuits, and in particular, to dynamic programmable logic gates using mask-programmable logic cells.
2. Description of the Related Art
Logic circuits, particularly those used to simultaneously evaluate an equation with a large number of inputs have been implemented in a variety of architectures. A programmable logic array (PLA) is an integrated circuit device that incorporates fixed sets of AND and OR logic gates or similar functions such as NAND, NOR, XOR or XNOR with one or more interconnect planes used to create several logical combinatorial outputs from several logical inputs. The interconnect planes in a mask PLA are usually metallization layers that can be redesigned and deposited during a production run without redesigning the semiconductor layers of the device. The depositing of the mask can be performed by vapor deposition of aluminum or other metals using techniques well known in the art. The mask connects devices within an interconnect array or "plane" comprising two sets of conductors, a set of logic inputs and a set of logic gate inputs. The sets of conductors are coupled together with devices that create a logic contribution from the logic inputs to the logic gate inputs. Fuse PLAs allow programming of the device after manufacture by using a programming unit or appropriate in-circuit electronics to allow programming of the device.
PLAs have found use in complex logic network implementations and recently in high-speed microprocessor core designs where they can be used to implement the state machines and control logic of the processor. A disadvantage associated with the use of PLAs is associated with the organization of their logic. Due to the sum-of-products or product-of-sums arrangement, implementation of complex logic functions may not be efficient. An input might only be used in a very limited sense, for example within only one midterm in the entire logic array. The number of maxterms may be limited in the interconnect between the input plane and the output plane, making some logic equation implementations too complex for a particular PLA. These limitations are usually overcome by adding additional static or dynamic gates to implement the additional logic required, but this arrangement is non-programmable and loses the benefits of quick mask turn-around and the structured design available with programmable logic.
Therefore, it would be desirable to implement programmable logic in such a way as to improve the efficiency of logic implementations and additionally, to facilitate the use of PLAs in logic designs.